package UserAndGroup;

import org.activiti.engine.IdentityService;
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.User;

/**
 * <p>类描述：创建用户和用户组。</p>
 *
 * @author 贾亮
 * @version v1.0.0.1。
 * @since JDK1.8。
 * <p>创建日期：2018/3/6 10:51。</p>
 */
public class Creat {

    /**
     * <p>功能描述：创建用户方法。</p>
     * <p>贾亮</p>
     * @param identityService
     * @param id
     * @param first
     * @param last
     * @param email
     * @param passwd
     * @since JDK1.8
     * <p>创建日期：2018/3/6 10:54。</p>
     * <p>更新日期:[日期YYYY-MM-DD][更改人姓名][变更描述]。</p>
     */
    public static User creatUser(IdentityService identityService, String id,
                          String first, String last, String email, String passwd) {
        // 使用newUser方法创建User实例
        User user = identityService.newUser(id);
        // 设置用户的各个属性
        user.setFirstName(first);
        user.setLastName(last);
        user.setEmail(email);
        user.setPassword(passwd);
        // 使用saveUser方法保存用户
        identityService.saveUser(user);
        return identityService.createUserQuery().userId(id).singleResult();
    }

    /**
     * <p>功能描述：将用户组数据保存到数据库中。</p>
     * <p>贾亮</p>
     * @param identityService
     * @param id
     * @param name
     * @param type
     * @since JDK1.8
     * <p>创建日期：2018/3/6 10:54。</p>
     * <p>更新日期:[日期YYYY-MM-DD][更改人姓名][变更描述]。</p>
     */
    public static Group createGroup(IdentityService identityService, String id,
                             String name, String type) {
        // 调用newGroup方法创建Group实例
        Group group = identityService.newGroup(id);
        group.setName(name);
        group.setType(type);
        identityService.saveGroup(group);
        return identityService.createGroupQuery().groupId(id).singleResult();
    }
}
